With the rapid development of the Internet and the increasingly rich material and spiritual culture of people, there are increasing application demands for a video on the Internet, especially application demands for a high-definition video. However, a data volume of a high-definition video is very large, and in order to transmit a high-definition video on the Internet with limited bandwidth, a problem of high-definition video compression encoding and decoding is a problem that needs to be resolved first.
Currently, there is an encoding and decoding technology in which multiple pieces of motion information are acquired from an adjacent image block, a piece of optimal motion information is selected from the acquired multiple pieces of motion information, and motion compensation is performed on a current coding block using the optimal motion information. It should be noted that, the foregoing adjacent image block may be a temporally adjacent image block or a spatially adjacent image block. The spatially adjacent image block is an encoded or decoded image block in a same image (for example, a same video frame) as a currently processed image block, and the temporally neighboring block is a corresponding encoded or decoded image block in a time-domain reference image (for example, a forward reference frame or a backward reference frame) of the currently processed image block. Therefore, the motion information of the adjacent image block can be effectively used to determine motion information of the currently processed image block without explicitly writing motion information of the current coding block into a data stream.
However, in the foregoing process of selecting a piece of optimal motion information from the acquired multiple pieces of motion information, it is required to perform calculation based on a pixel block that is in a reference image (also referred to as a reference image block) and is corresponding to each piece of motion information (or a pixel block to which each piece of motion information points). Therefore, it is required to read, from the reference image, a reference image block to which each piece of motion information points, and store the reference image block in a memory for use of calculating the foregoing optimal motion information.
In particular, when there is a relatively large quantity of candidate motion vectors, it is required to store a relatively large quantity of reference image blocks. As a result, a higher requirement is imposed on memory bandwidth, and system costs are increased.
Therefore, it is desired to provide a technology that can reduce the requirement on memory bandwidth.